<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>正则表达式</title>
</head>
<body>
    <h1>正则表达式</h1>
    <pre>
    1、作用
    2、怎么写正则   
        test(验证的字符串)  true false
        边界符号 ^开头 $结尾
        集合 [abc]多个里选择一个
            [a-h]abcdefgh
            [可以写汉字的范围]
            [^abc]排除
        量词*
            +
            ?
            {n}匹配n次  {n,}至少n次 {n,m}至少n次至多m次    
    3、表单验证
    4、字符串抓取和替换
    </pre>
</body>
<script>
    /*
    var zz1=/abc/;
    var zz2=new RegExp('abc');
    console.log(zz1.test('abc'));   //true
    console.log(zz1.test('123abc1234'));   //true
    console.log(zz1.test('123ab123'));   //false
    console.log("------------------");
    var reg=/^abc/;//以abc开头
    console.log(reg.test('asdabc'));
    var reg2=/abc$/;//以abc结尾
    var reg3=/^abc$/;//以abc开头和结尾
    console.log(reg2.test('abc'));//true
    console.log(reg2.test('123abcsd'));//false
    console.log(reg2.test('abc456'));//false
    console.log(reg2.test('123abc'));//true
    */
    console.log("--------------");
    /*
    var reg=/[abc]/; //包含abc其中一个
    console.log(reg.test("temo"));//false
    console.log(reg.test("aoduola"));//true
    console.log(reg.test("baowan"));//true
    */
   /*
    var reg=/[a-h]$/;   //a~h范围内的结尾
    console.log(reg.test("temo"));//false
    console.log(reg.test("aoduola"));//true
    console.log(reg.test("baowan"));//false
    */
   /*
   var reg=/^[a-zA-Z0-9_-]$/;   //在这些范围内的其中一个符号
   console.log(reg.test('$abc'));   //false
   console.log(reg.test('37asd'));  //false
   console.log(reg.test('_tty'));   //false
   var hz=/^[\u4e00-\u9fa5]{2,8}$/;//2~8个汉字
   console.log(hz.test('积分'));    //true
   console.log(hz.test('积分分子'));//true
   console.log(hz.test('超级厉害无敌帅气'));//true
   console.log(hz.test('积分123'));//false
    */
   /*
   console.log("------------------------排除");
   var reg=/^[^a-zA-Z0-9_-]$/;//排除这些范围
   console.log(reg.test("a"));  //false
   console.log(reg.test("&"));  //true
   */
  /*
    console.log("----------------------量词");
    var reg=/^a*$/;//*表示0次或多次
    console.log(reg.test('a'));//true
    console.log(reg.test(''));//true
    var reg1=/^a+$/;//+表示一次或多次
    console.log(reg1.test('a'));//true
    console.log(reg1.test(''));//false
    var reg3=/^a?$/;//?表示零次或一次
    console.log(reg3.test('a'));//true
    console.log(reg3.test(''));//true
    console.log(reg3.test('aaa'));//false
    var reg4=/^bo{2}m$/;//b开头o为两次m结尾
    console.log(reg4.test('bom')); //false
    console.log(reg4.test('boom')); //true
    console.log(reg4.test('booooom'));//false
*/
//练习
//手机号
var tel=/^[13|15|18|14][0-9][0-9]{4}[0-9]{4}/;
console.log(tel.test('15770623252'));
//账号是否合法(字母开头,允许5~16字节,允许字母数字下划线)
var user=/^[a-z|A-Z][a-z|A-Z|0-9|_]{4,15}/;
console.log(user.test('A_13'));
//密码(长度在6~18之间,只能包含字母、数字、下划线)
var pwd=/^[a-z|A-Z|0-9|_]{6,18}/;
console.log(pwd.test('Aaa_13'));
//qq号
var qq=/^[1-9][0-9]{4,}/;
console.log(qq.test('3038324746'));
</script>
</html>